Digital signals are transmitted through various propagation paths in a wireless communication system. Further, the digital signals are reproduced from a recording medium such as a compact disc (CD) or a digital versatile disc (DVD). When the digital signals are transmitted and reproduced through various channels, various data errors may be caused due to noise and variations.
In order to overcome a data error, an error correction code can be used. The error correction code is a code in which each data signal conforms to specific rules of construction so that information bits in the received signal can generally be automatically detected and corrected.
A turbo code is one of error correction codes used in many wireless communication systems. The turbo code has a relatively simple decoding algorithm and also has a significantly low bit error rate. Basically, the turbo code is a parallel concatenated convolution code. In general, the turbo code applies different arrays of the same bit-stream to a constituent encoder. That is, the same bit-stream is used in the constituent encoder by changing only bit arrangement.
For decoding, the turbo code uses a soft-output iterative decoding scheme. A Viterbi algorithm has generally been used in the convolutional code. Although it is an optimal method for minimizing a bit-stream error, bit-unit information cannot be generated with the Viterbi algorithm. In the decoding process, soft-output information of each bit is exchanged, and the exchanged information is used in a next decoding process, thereby improving performance.
A data transmission/reception process is generally performed in a typical communication system in the following manner. When information bits are input, channel encoding is performed to output coded bits. The coded bits are interleaved and then mapped in a unit of symbols. The mapped symbols are modulated and then transmitted. The symbols transmitted through a channel are de-mapped by a de-mapper. The de-mapped bit information is de-interleaved and then channel-decoded. The channel decoder reports a reliability level of a coded bit and an estimated data bit. The reliability level of the coded bit is interleaved and then input to the de-mapper. This information allows the de-mapper to output improved bit information. The improved bit information is de-interleaved and then input to the channel decoder. In an iterative decoding process, the de-mapper and the channel decoder iterate de-mapping and decoding functions a predetermined number of times while improving the mutual functions, and obtained information on the estimated data bit is finally estimated in a next iteration. Through the iterative decoding, the channel decoder can output the reliability level of the coded bit and the estimated data bit.
Accordingly, in the communication system using the turbo code, decoding performance can be improved by improving reliability of coded bits.